Лабораторна робота № 7
Оброблення двовимірного масиву
1. Порядок виконання роботи
1.1. Скласти алгоритмічною мовою Фортран програму оброблення двовимірного масиву.
1.2. Відлагодити на комп’ютері складену програму.
1.3. Ввести числові дані та отримати результат.
1.4. Скласти звіт про роботу й захистити його.
2. Вказівки до виконання роботи
2.1. Приклади задач оброблення двовимірних масивів
При розв’язуванні різноманітних математичних та інженерних задач (матрична алгебра, оброблення експериментальних даних, виконання багатьох варіантів розрахунків тощо) виникає потреба у використанні двовимірних масивів. Розглянемо декілька характерних прикладів задач оброблення двовимірних масивів.
Приклад 1. Для заданої матриці А, яка містить N рядків і М стовпців, необхідно обчислити суму значень елементів її кожного рядка. Результат оформити у вигляді одновимірного масиву S.
Обчислення суми значень елементів кожного рядка матриці виконується за формулою
EMBED Equation.DSMT4
де і – біжучий номер рядка, j – біжучий номер стовпця. Для обчислення суми елементів і-го рядка необхідно, зафіксувавши його номер і, змінювати номер j стовпця матриці від 1 до M та обчислити суму значень елементів даного рядка.
Один із можливих варіантів програми:
У цій програмі задано розмір двовимірного масиву A(30, 20) і розмір одновимірного масиву S(30), тому максимальне значення N кількості рядків не може перевищувати 30, а максимальне значення М кількості стовпців не може перевищувати 20. При необхідності розміри масивів можна змінити.
Перед запуском програми на виконання необхідно створити файл вхідної інформації DANI.DAT і занести до нього вхідні дані у довільному форматі таким чином: у першому рядку файла задати кількість рядків матриці А, у другому рядку – кількість її стовпців, у третьому рядку файла задати перший рядок матриці А, у четвертому – її другий рядок і т.д. Наприклад, матриця, яка містить 4 рядки і 3 стовпці, повинна бути задана у вигляді:
4
3
У програмі організовано два цикли – внутрішній за параметром j, за допомогою якого змінюється номер стовпця, і зовнішній за параметром і, за допомогою якого змінюється номер рядка.
Очевидно, що перед початком обчислення суми елементів кожного рядка, комірки пам’яті, де буде проводитися підрахунок, необхідно “занулити”.
Результати обчислень надрукується на екрані монітора і будуть містити інформацію про номер рядка матриці та суму його елементів.
Приклад 2. Для матриці В, яка складається з N рядків і М стовпців, підрахувати кількість від’ємних елементів у кожному стовпці. Вхідна інформація задана у файлі DN.DAT у вигляді, аналогічному до наведеного. Результати оформити у вигляді одновимірного масиву і записати до файла REZ.DAT.
Один із можливих варіантів програми:
Тут, як і у попередній програмі, для обчислення кількості від’ємних елементів у кожному стовпці організовано два цикли. У зовнішньому циклі організовано вибір стовпця, а у внутрішньому – логічний умовний оператор передбачає для від’ємних елементів вибраного стовпця перехід на обчислення їх кількості.
Результати обчислень надрукується у файлі вихідної інформації, де буде вказано номер стовпця матриці та кількість його від’ємних елементів.
Приклад 3. Для матриці C скласти фрагмент програми визначення максимального за модулем елемента та його порядкового номера рядка і стовпця.
Один із можливих варіантів фрагменту програми:
Тут для визначення максимального за модулем елемента припускаємо, що елемент масиву С(1, 1) є максимальним і його значення за модулем присвоюємо змінній Amax. Очевидно, що у цьому випадку номер рядка та номер стовпця елемента С(1, 1) рівні 1. Далі кожен модуль елемента масиву С(i, j) EMBED Equation.DSMT4 порівнюємо з Amax, тобто перевіряємо умову |C(i, j)| > Amax. У випадку, коли умова справджується, то аналізоване значення С(i, j) є найбільшим за модулем і його присвоюємо змінній Amax та фіксуємо порядковий номер i рядка й порядковий номер j стовпця масиву.
Якщо матриця містить декілька ...